Micron Document
<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 skin-theme-clientpref-day vector-sticky-header-enabled" lang="de" dir="ltr"><head>
<meta charset="UTF-8">
<title>AMDP (Informatik)</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="./_res_/favicon.png">
<link rel="canonical" href="https://de.wikipedia.org/wiki/AMDP_(Informatik)"> <link href="./_mw_/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link href="./_mw_/ext.gadget.citeRef.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.defaultPlainlinks.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonHide.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonLayout.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonStyle.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiDarkmode.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiResponsive.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.specialSearch.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
<link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
<link rel="stylesheet" type="text/css" href="./_res_/footer.css">
<link rel="stylesheet" type="text/css" href="./_res_/vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-AMDP_Informatik rootpage-AMDP_Informatik skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">AMDP (Informatik)</span></h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="contentSub">
<div id="mw-content-subtitle"></div>
</div>
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="de" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="de" dir="ltr"><p><b>AMDP</b> (Akronym von <a href="ABAP" title="ABAP"><b>A</b>BAP</a> <b>M</b>anaged <b>D</b>atabase <b>P</b>rocedures) bezeichnete ursprünglich ein „<a href="Framework" title="Framework">Framework</a>“ der <a href="SAP" title="SAP">SAP</a> zum Definieren, Implementieren, Verwalten und Aufrufen von <a href="Gespeicherte_Prozedur" title="Gespeicherte Prozedur">Datenbankprozeduren</a> in der <a href="SAP_HANA" title="SAP HANA">SAP-HANA</a>-Datenbank aus dem <a href="SAP_NetWeaver_Application_Server" title="SAP NetWeaver Application Server">ABAP-Applikationsserver</a> heraus.<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup> Mittlerweile ist auch eine Unterstützung für <a href="Funktion_(Programmierung)" title="Funktion (Programmierung)">Datenbankfunktionen</a> hinzugekommen.<sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup> Die Implementierung erfolgt in SQLScript, der Abfragesprache für die SAP-HANA-Datenbank.<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup>
</p>

<div class="mw-heading mw-heading2"><h2 id="Konzept">Konzept</h2></div>
<div class="mw-heading mw-heading3"><h3 id="Definition_von_AMDP-Methoden">Definition von AMDP-Methoden</h3></div>
<p>Die Objekte des AMDP-Framework werden im Deklarationsteil von ABAP-Klassen als ABAP-Methoden definiert. Hier wird noch nicht festgelegt, in welcher Programmiersprache die Implementierung erfolgen soll. Allerdings sind hier ein paar Restriktionen zu beachten, damit die Implementierung als AMDP erfolgen kann:
</p>
<ul><li>Das Interface IF_AMDP_MARKER_HDB muss implementiert sein</li>
<li>Die Methoden dürfen nur „<a href="Call_by_value" class="mw-redirect" title="Call by value">Call by value</a>“-Parameter haben</li>
<li>Je nach Objekttyp bestehen weitere Einschränkungen in Bezug auf die Parameter</li></ul>
<div class="mw-heading mw-heading3"><h3 id="Implementierung_von_AMDP-Methoden">Implementierung von AMDP-Methoden</h3></div>
<p>Bei der Implementierung einer Methode wird festgelegt, als welcher Objekttyp die Methode umgesetzt werden soll und in welcher Programmiersprache.
</p>
<div class="mw-heading mw-heading3"><h3 id="Generierte_Datenbankartefakte">Generierte Datenbankartefakte</h3></div>
<p>Für jede AMDP-Methode wird eine Datenbankprozedur oder -funktion im <a href="Schema_(Informatik)" title="Schema (Informatik)">Datenbankschema</a> des SAP-ABAP-Datenbankbenutzers erzeugt. Je nach Versionsstand werden zusätzlich noch eine oder zwei weitere Prozeduren generiert, die als <a href="Wrapper_(Software)" title="Wrapper (Software)">„Wrapper“</a> um diese Objekte dienen. Diese gleichen die Unterschiede in der Definition von ABAP-Methoden und Datenbankprozeduren aus. Beispielsweise werden CHANGING-Parameter der Methode zu einem IN- und einem OUT-Parameter in der Datenbankprozedur umgewandelt.<sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Lebenszyklus_der_Datenbankobjekte">Lebenszyklus der Datenbankobjekte</h3></div>
<p>Die Datenbankobjekte werden erst bei Bedarf generiert, d. h. beim ersten Aufruf oder für die Syntaxprüfung abhängiger Datenbankobjekte. Nach Änderungen im Quellcode und dem Aktivieren der ABAP-Klasse werden die Datenbankartefakte zunächst wieder gelöscht und erst bei der nächsten Verwendung neu generiert.
</p>
<div class="mw-heading mw-heading2"><h2 id="Objekttypen_des_AMDP-Framework">Objekttypen des AMDP-Framework</h2></div>
<p>Mit dem AMDP-Framework können unterschiedliche Objekttypen erzeugt werden.
</p>
<div class="mw-heading mw-heading3"><h3 id="Datenbankprozeduren">Datenbankprozeduren</h3></div>
<p>Die Datenbankprozeduren sind der älteste Objekttyp im AMDP-Framework, der deshalb auch mit in den Namen AMDP eingeflossen ist. Die so erzeugten Prozeduren lassen sich ganz normal als ABAP-Methoden aufrufen. Es ist aber auch möglich, die zugehörigen Datenbankprozeduren von anderen Datenbankobjekten heraus aufzurufen, unter anderem aus weiteren AMDP-Objekten.<sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Datenbankfunktionen">Datenbankfunktionen</h3></div>
<p>Für die Modularisierung von Entwicklungen in der Datenbank sind Funktionen ein wichtiges Konstrukt. Sie können als <a href="Ausdruck_(Programmierung)" title="Ausdruck (Programmierung)">Ausdruck</a> in anderen SQL-Anweisungen in Datenbankobjekten verwendet werden. Ein direkter Zugriff aus dem <a href="OpenSQL" class="mw-redirect" title="OpenSQL">OpenSQL</a> von ABAP-Programmen ist nicht möglich.
</p>
<div class="mw-heading mw-heading4"><h4 id="Tabellenfunktionen">Tabellenfunktionen</h4></div>
<p>Tabellenfunktionen geben eine Tabelle als Ausdruck zurück, die sich dann beispielsweise in der FROM-Klausel einer SELECT-Anweisung verwenden lässt.
</p>
<div class="mw-heading mw-heading4"><h4 id="Skalare_Funktionen_(Seit_ABAP_BASIS_7.53)"><span id="Skalare_Funktionen_.28Seit_ABAP_BASIS_7.53.29"></span>Skalare Funktionen (Seit ABAP_BASIS 7.53)</h4></div>
<p>Skalare Funktionen geben einen einzelnen Wert zurück. Sie können verwendet werden, um wiederkehrende Logik zu kapseln, wie z.&nbsp;B. Datumsformatierung.
</p>
<div class="mw-heading mw-heading3"><h3 id="„CDS-Table_Functions“"><span id=".E2.80.9ECDS-Table_Functions.E2.80.9C"></span>„CDS-Table Functions“</h3></div>
<p>Das „Core Data Services (CDS)“-Konzept im ABAP-Applikationsserver ermöglicht die Kapselung von Tabellenfunktionen in CDS-Objekten. Damit können frei programmierte „Views“ erzeugt werden, die sich in ABAP-Programmen wie normale „<a href="Data-Dictionary" title="Data-Dictionary">DDic Views“</a> abfragen lassen.
</p>
<div class="mw-heading mw-heading2"><h2 id="Einsatzszenarien_für_AMDP"><span id="Einsatzszenarien_f.C3.BCr_AMDP"></span>Einsatzszenarien für AMDP</h2></div>
<div class="mw-heading mw-heading3"><h3 id="AMDP_für_SAP_BW/4HANA_Transformationsroutinen"><span id="AMDP_f.C3.BCr_SAP_BW.2F4HANA_Transformationsroutinen"></span>AMDP für SAP BW/4HANA Transformationsroutinen</h3></div>
<p>Mit dem SAP BW on HANA hat die SAP die Ausführung von Data Transfer Prozessen (DTPs) neu implementiert, und zwar direkt auf der HANA Datenbank. Das hat eine enorme Beschleunigung gebracht und die Laufzeiten ca. um den Faktor 10 reduziert. Eine Voraussetzung für diese HANA Ausführung ist allerdings, dass keine ABAP Routinen in den Transformationen verwendet werden.
</p><p>Die Alternative zu ABAP Routinen sind Prozeduren in SQLScript. Diese werden bei der Entwicklung als AMDP-Methoden erfasst. Der Rahmen dieser Klassen und Methoden wird vom BW-System passend zur Transformation generiert. Der Entwickler muss dann noch den SQLScript-Code erfassen. Eine tiefergehende Kenntnis von der Definition von Datenbankprozeduren ist nicht notwendig.
</p>
<div class="mw-heading mw-heading3"><h3 id="AMDP_in_ABAP_Programmen">AMDP in ABAP Programmen</h3></div>
<p>Die Nutzung von SQLScript ist vor allem dann sinnvoll, wenn es sich
</p>
<ol><li>um große Datenmengen handelt und</li>
<li>auf die Laufzeit ankommt.</li></ol>
<p>Beides ist im <a href="SAP_NetWeaver_Business_Intelligence" title="SAP NetWeaver Business Intelligence">SAP BW</a> gegeben, weshalb AMDP hier eine große Rolle spielt. Wenn diese Faktoren aber auch auf ein ABAP Programm zutreffen, können auch hier SQLScript über AMDPs genutzt werden, um direkt auf der Datenbank Prozeduren auszuführen und lesend und schreibend auf Tabellen zugreifen, oder in Form von CDS-Table Functions als programmierte Views. Diese werden in SQLScript als Funktion implementiert. Eine CDS-<a href="Entit%C3%A4t_(Informatik)" title="Entität (Informatik)">Entität</a> dient dann als Wrapper, um sie für ABAP Programme zur Verfügung zu stellen. Sie können dort wie ein DDic-View in einer SELECT-Abfrage genutzt werden.<sup id="cite_ref-6" class="reference"><a href="#cite_note-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Weblinks">Weblinks</h2></div>
<ul><li><a rel="nofollow" class="external text" href="https://help.sap.com/doc/abapdocu_753_index_htm/7.53/de-DE/abenamdp.htm">SAP Referenzdokumentation: AMDP - ABAP Managed Database Procedures (7.53)</a></li>
<li><a rel="nofollow" class="external text" href="https://www.brandeis.de/blog/das-amdp-framework/">Auszug aus dem Buch „SQLScript für SAP HANA“, Rheinwerkverlag: Das AMDP Framework</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="Einzelnachweise">Einzelnachweise</h2></div>
<ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text"><span class="cite"><a rel="nofollow" class="external text" href="https://help.sap.com/doc/abapdocu_740_index_htm/7.40/de-DE/abenamdp.htm"><i>ABAP-Schlüsselwortdokumentation.</i></a><span class="Abrufdatum"> Abgerufen am 4.&nbsp;Januar 2021</span>.</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AAMDP+%28Informatik%29&amp;rft.title=ABAP-Schl%C3%BCsselwortdokumentation&amp;rft.description=ABAP-Schl%C3%BCsselwortdokumentation&amp;rft.identifier=https%3A%2F%2Fhelp.sap.com%2Fdoc%2Fabapdocu_740_index_htm%2F7.40%2Fde-DE%2Fabenamdp.htm">&nbsp;</span></span>
</li>
<li id="cite_note-2"><span class="mw-cite-backlink"><a href="#cite_ref-2">↑</a></span> <span class="reference-text"><span class="cite"><a rel="nofollow" class="external text" href="https://help.sap.com/doc/abapdocu_753_index_htm/7.53/de-DE/abenamdp.htm"><i>AMDP - ABAP Managed Database Procedures - ABAP-Schlüsselwortdokumentation.</i></a><span class="Abrufdatum"> Abgerufen am 4.&nbsp;Januar 2021</span>.</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AAMDP+%28Informatik%29&amp;rft.title=AMDP+-+ABAP+Managed+Database+Procedures+-+ABAP-Schl%C3%BCsselwortdokumentation&amp;rft.description=AMDP+-+ABAP+Managed+Database+Procedures+-+ABAP-Schl%C3%BCsselwortdokumentation&amp;rft.identifier=https%3A%2F%2Fhelp.sap.com%2Fdoc%2Fabapdocu_753_index_htm%2F7.53%2Fde-DE%2Fabenamdp.htm">&nbsp;</span></span>
</li>
<li id="cite_note-3"><span class="mw-cite-backlink"><a href="#cite_ref-3">↑</a></span> <span class="reference-text"><span class="cite"><a rel="nofollow" class="external text" href="https://erlebe-software.de/sap-hana-entwicklung/was-sind-amdp/"><i>Was sind AMDP und welche Funktionen bieten sie?</i></a> In: <i>Erlebe Software.</i> 28.&nbsp;März 2018,<span class="Abrufdatum"> abgerufen am 13.&nbsp;März 2021</span> (deutsch).</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AAMDP+%28Informatik%29&amp;rft.title=Was+sind+AMDP+und+welche+Funktionen+bieten+sie%3F&amp;rft.description=Was+sind+AMDP+und+welche+Funktionen+bieten+sie%3F&amp;rft.identifier=https%3A%2F%2Ferlebe-software.de%2Fsap-hana-entwicklung%2Fwas-sind-amdp%2F&amp;rft.date=2018-03-28&amp;rft.language=de-DE">&nbsp;</span></span>
</li>
<li id="cite_note-4"><span class="mw-cite-backlink"><a href="#cite_ref-4">↑</a></span> <span class="reference-text"><cite style="font-style:italic">SQLScript für SAP HANA</cite>. 2. Auflage. Galileo Press, Bonn, ISBN 978-3-8362-7408-1.<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rfr_id=info:sid/de.wikipedia.org:AMDP+%28Informatik%29&amp;rft.btitle=SQLScript+f%C3%BCr+SAP+HANA&amp;rft.edition=2&amp;rft.genre=book&amp;rft.isbn=9783836274081&amp;rft.place=Bonn&amp;rft.pub=Galileo+Press" style="display:none">&nbsp;</span></span>
</li>
<li id="cite_note-5"><span class="mw-cite-backlink"><a href="#cite_ref-5">↑</a></span> <span class="reference-text"><span class="cite"><a rel="nofollow" class="external text" href="https://www.brandeis.de/blog/wiederverwendung-von-geschaeftslogik-in-amdp-transformationsroutinen/"><i>Wiederverwendung von Geschäftslogik in AMDP Transformationsroutinen -.</i></a> In: <i>Brandeis Consulting.</i> 16.&nbsp;November 2020,<span class="Abrufdatum"> abgerufen am 4.&nbsp;Januar 2021</span> (deutsch).</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AAMDP+%28Informatik%29&amp;rft.title=Wiederverwendung+von+Gesch%C3%A4ftslogik+in+AMDP+Transformationsroutinen+-&amp;rft.description=Wiederverwendung+von+Gesch%C3%A4ftslogik+in+AMDP+Transformationsroutinen+-&amp;rft.identifier=https%3A%2F%2Fwww.brandeis.de%2Fblog%2Fwiederverwendung-von-geschaeftslogik-in-amdp-transformationsroutinen%2F&amp;rft.date=2020-11-16&amp;rft.language=de-DE">&nbsp;</span></span>
</li>
<li id="cite_note-6"><span class="mw-cite-backlink"><a href="#cite_ref-6">↑</a></span> <span class="reference-text">Referenz für Abschnitt „Einsatzszenarien für AMDP“:<span class="cite"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20210114212550/https://www.brandeis.de/blog/amdp/"><i>AMDP (ABAP Managed Database Procedures).</i></a> In: <i>Brandeis Consulting.</i> 18.&nbsp;November 2020, archiviert vom <style data-mw-deduplicate="TemplateStyles:r250917974">
/* start https://de.wikipedia.org/ */


.mw-parser-output .dewiki-iconexternal>a{background-position:center right!important;background-repeat:no-repeat!important}body.skin-minerva .mw-parser-output .dewiki-iconexternal>a{background-image:url("./_mw_/OOjs_UI_icon_external-link-ltr-progressive.svg")!important;background-size:10px!important;padding-right:13px!important}body.skin-timeless .mw-parser-output .dewiki-iconexternal>a,body.skin-monobook .mw-parser-output .dewiki-iconexternal>a{background-image:url("./_mw_/MediaWiki_external_link_icon.svg")!important;padding-right:13px!important}body.skin-vector .mw-parser-output .dewiki-iconexternal>a{background-image:url("./_mw_/Link.ernal-small-ltr-progressive.svg")!important;background-size:0.857em!important;padding-right:1em!important}


/* end https://de.wikipedia.org/ */
</style><span class="dewiki-iconexternal"><a class="external text" href="https://redirecter.toolforge.org/?url=https%3A%2F%2Fwww.brandeis.de%2Fblog%2Famdp%2F">Original</a></span> (nicht mehr online verfügbar) am <span style="white-space:nowrap;">14.&nbsp;Januar 2021</span><span>;</span><span class="Abrufdatum"> abgerufen am 4.&nbsp;Januar 2021</span> (deutsch).</span> <small class="archiv-bot"><span class="wp_boppel noviewer" aria-hidden="true" role="presentation"><span typeof="mw:File"><span title="i"></span></span></span>&nbsp;<b>Info:</b> Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.</small><span style="display:none"><a rel="nofollow" class="external text" href="http://IABotmemento.invalid/https://www.brandeis.de/blog/amdp/">@1</a></span><span style="display:none"><a rel="nofollow" class="external text" href="https://www.brandeis.de/blog/amdp/">@2</a></span><span style="display:none">Vorlage:Webachiv/IABot/www.brandeis.de</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3AAMDP+%28Informatik%29&amp;rft.title=AMDP+%28ABAP+Managed+Database+Procedures%29&amp;rft.description=AMDP+%28ABAP+Managed+Database+Procedures%29&amp;rft.identifier=https%3A%2F%2Fweb.archive.org%2Fweb%2F20210114212550%2Fhttps%3A%2F%2Fwww.brandeis.de%2Fblog%2Famdp%2F&amp;rft.date=2020-11-18&amp;rft.source=https://www.brandeis.de/blog/amdp/&amp;rft.language=de-DE">&nbsp;</span></span>
</li>
</ol></div><!--htdig_noindex--><div><div class="zim-footer">
Dieser Artikel wurde von <a class="external text" title="Zuletzt bearbeitet am 2025-02-23" href="https://de.wikipedia.org/wiki/?title=AMDP_(Informatik)&amp;oldid=253601297">Wikipedia</a> herausgegeben. Der Text ist unter <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.de">Creative Commons Attribution-Share Alike 4.0</a> verfügbar, sofern nicht anders angegeben. Für die Mediendateien können zusätzliche Bedingungen gelten.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
<script src="./_webp_/webpHandler.js"></script>

</body></html>